home *** CD-ROM | disk | FTP | other *** search
/ ADA Programming Guide / ADA Programming Guide.iso / ada_pcdp / ada / second.ada < prev    next >
Text File  |  1996-01-30  |  753b  |  38 lines

  1. with Text_IO; use Text_IO;
  2. procedure Second is
  3.   pragma Time_Slice(0.01);
  4.  
  5.   C1, C2: Integer := 1;
  6.   pragma Volatile(C1);
  7.   pragma Volatile(C2);
  8.  
  9.   task T1;
  10.   task body T1 is
  11.   begin
  12.     loop
  13.       Put_Line("Task 1 idling");
  14.       loop exit when C2 /= 0; end loop;
  15.       Put_Line("Task 1 entering critical section");
  16.       C1 := 0;
  17.       Put_Line("Task 1 in critical section");
  18.       C1 := 1;
  19.     end loop;
  20.   end T1;
  21.  
  22.   task T2;
  23.   task body T2 is
  24.   begin
  25.     loop
  26.       Put_Line("Task 2 idling");
  27.       loop exit when C1 /= 0; end loop;
  28.       Put_Line("Task 2 entering critical section");
  29.       C2 := 0;
  30.       Put_Line("Task 2 in critical section");
  31.       C2 := 1;
  32.     end loop;
  33.   end T2;
  34.  
  35. begin
  36.   null;
  37. end Second;
  38.